package com.nuoniu.sibanyun.service.crm;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nuoniu.sibanyun.entity.crm.CrmGoods;
import com.nuoniu.sibanyun.entity.crm.bo.GoodsOrderDetailBo;
import com.nuoniu.sibanyun.entity.crm.dto.CrmGoodsSaveDto;

import java.util.List;

/**
 * <p>
 * 客户商品表 服务类
 * </p>
 *
 * @author baiqiang
 * @since 2020-07-17
 */
public interface ICrmGoodsService extends IService<CrmGoods> {

    /**
     * 获取商品列表
     * @author 小啊刚
     * @date 2020-07-17
     */
    List<CrmGoods> pageGoods(Page page, CrmGoods goods);
    /**
     * 获取套餐列表
     * @return
     */
    List<GoodsOrderDetailBo> pageGoodsSetting(Page page);

    /**
     * 保存 商品
     * @param crmGoodsSaveDto
     */
    void saveGoods(CrmGoodsSaveDto crmGoodsSaveDto);

    /**
     * 使用商品
     * @author 小啊刚
     * @date 2021-07-31
     */
    void useGoods(Long id);

    /**
     * 通过公司ID 查询 租户管理员角色ID
     * @return
     */
    Integer getCompanySysRoleIdByCompanyId();

    /**
     * 是否 操作权限
     * @param checkUserId
     * @return
     */
    boolean isHaveOperationRight(Long checkUserId);

    /**
     * 根据角色统计
     * @author 小啊刚
     * @date 2022-02-22
     */
    Integer getCountByRoleId(Long id);
}
